A comprehensive library for creating static, animated, and interactive visualizations
datacamp tutorials:
pip install matplotlibimport matplotlib as mpl
mpl.__version__
# '3.3.0'Architecture:
pyplotArtistFigureCanvaas, Renderer, EventAllow matplotlib plots to be plotted inline in the notebook:
%matplotlib inline
Allow modification of figures after they have been rendered:
%matplotlib notebook
mpl.style.use(['ggplot'])import matplotlib.pyplot as pltplt.plot(1, 1, 'o')plt.hist(x)
plt.title(r'Normal distribution with $\mu=0, \sigma=1$')
plt.xlabel('x-axis-label')
plt.ylabel('y-axis-label')
plt.text(x, y, 'label')
plt.savefig('a_histogram.png)
plt.show()plt.scatter(x, y)Heat map
plt.pcolor(df_pivot, cmap='Rdbu')
plt.colourbar()
plt.show()# Annotate arrow
plt.annotate('label',
xy=(32, 70), # place head of the arrow at point (year 2012 , pop 70)
xytext=(28, 20), # place base of the arrow at point (year 2008 , pop 20)
xycoords='data', # will use the coordinate system of the object being annotated
arrowprops=dict(arrowstyle='->', connectionstyle='arc3', color='blue', lw=2)
)
# Annotate Text
plt.annotate('2008 - 2011 Financial Crisis', # text to display
xy=(28, 30), # start the text at at point (year 2008 , pop 30)
rotation=72.5, # based on trial and error to match the arrow
va='bottom', # want the text to be vertically 'bottom' aligned
ha='left', # want the text to be horizontally 'left' algned.
)line of best fit
# plot line of best fit
plt.plot(x, fit[0] * x + fit[1], color='red') # recall that x is the Years
plt.annotate('y={0:.0f} x + {1:.0f}'.format(fit[0], fit[1]), xy=(2000, 150000))fig = plt.figure() # create figure
ax0 = fig.add_subplot(1, 2, 1) # add subplot 1 (1 row, 2 columns, first plot)
ax1 = fig.add_subplot(1, 2, 2) # add subplot 2 (1 row, 2 columns, second plot). See tip below**
# Subplot 1: Box plot
df_CI.plot(kind='box', color='blue', vert=False, figsize=(20, 6), ax=ax0) # add to subplot 1
ax0.set_title('Box Plots of Immigrants from China and India (1980 - 2013)')
ax0.set_xlabel('Number of Immigrants')
ax0.set_ylabel('Countries')
# Subplot 2: Line plot
df_CI.plot(kind='line', figsize=(20, 6), ax=ax1) # add to subplot 2
ax1.set_title ('Line Plots of Immigrants from China and India (1980 - 2013)')
ax1.set_ylabel('Number of Immigrants')
ax1.set_xlabel('Years')
plt.show()Line2DRectangleCircleTextAxisTickAxes - the most important composite artist because it is where most of the plotting methods are defined - e.g.ย for creating and manipulating the ticks, axis lines, grid and plot backgroundFigure - top-level object that contains and manages all of the elements in a given graphicfrom matplotlib.figure import Figure
fig = Figure()
ax = fig.add_subplot(111) # create an axes artist
# 111 means 1 row, 1 col, cell 1Encompasses the area onto which the figure is drawn
from matplotlib.backend_bases import FigureCanvasAgg as FigureCanvas
canvas = FigureCanvas(fig) # see FigureAgg = anti-green geometry - a high performance library
An instance of the Renderer class that knows how to draw on the FigureCanvas
Handles user input such as keyboard strokes and mouse clicks
ax = plt.subplots()
# label names
row_labels = list(df.columns)
col_labels = list(df.index)
# move ticks and labels to the center
ax.set_xticks(np.arange(df.shape[1]) + 0.5, minor=False)
ax.set_yticks(np.arange(df.shape[0]) + 0.5, minor=False)
# insert labels
ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(col_labels, minor=False)
# rotate labels
plt.xticks(rotation=90)width = 12
height = 10
plt.figure(figsize=(width, height))def PlotPolly(model, independent_variable, dependent_variabble, Name):
x_new = np.linspace(15, 55, 100)
y_new = model(x_new)
plt.plot(independent_variable, dependent_variabble, '.', x_new, y_new, '-')
plt.title('Polynomial Fit with Matplotlib for Price ~ Length')
ax = plt.gca()
ax.set_facecolor((0.898, 0.898, 0.898))
fig = plt.gcf()
plt.xlabel(Name)
plt.ylabel('Price of Cars')
plt.show()
plt.close()import matplotlib as mpl
for name, hex in mpl.colors.cnames.items():
print(name, hex)
# aliceblue #F0F8FF
# antiquewhite #FAEBD7
# aqua #00FFFF
# aquamarine #7FFFD4
# azure #F0FFFF
# beige #F5F5DC
# bisque #FFE4C4
# black #000000
# blanchedalmond #FFEBCD
# blue #0000FF
# blueviolet #8A2BE2
# brown #A52A2A
# burlywood #DEB887
# cadetblue #5F9EA0
# chartreuse #7FFF00
# chocolate #D2691E
# coral #FF7F50
# cornflowerblue #6495ED
# cornsilk #FFF8DC
# crimson #DC143C
# cyan #00FFFF
# darkblue #00008B
# darkcyan #008B8B
# darkgoldenrod #B8860B
# darkgray #A9A9A9
# darkgreen #006400
# darkgrey #A9A9A9
# darkkhaki #BDB76B
# darkmagenta #8B008B
# darkolivegreen #556B2F
# darkorange #FF8C00
# darkorchid #9932CC
# darkred #8B0000
# darksalmon #E9967A
# darkseagreen #8FBC8F
# darkslateblue #483D8B
# darkslategray #2F4F4F
# darkslategrey #2F4F4F
# darkturquoise #00CED1
# darkviolet #9400D3
# deeppink #FF1493
# deepskyblue #00BFFF
# dimgray #696969
# dimgrey #696969
# dodgerblue #1E90FF
# firebrick #B22222
# floralwhite #FFFAF0
# forestgreen #228B22
# fuchsia #FF00FF
# gainsboro #DCDCDC
# ghostwhite #F8F8FF
# gold #FFD700
# goldenrod #DAA520
# gray #808080
# green #008000
# greenyellow #ADFF2F
# grey #808080
# honeydew #F0FFF0
# hotpink #FF69B4
# indianred #CD5C5C
# indigo #4B0082
# ivory #FFFFF0
# khaki #F0E68C
# lavender #E6E6FA
# lavenderblush #FFF0F5
# lawngreen #7CFC00
# lemonchiffon #FFFACD
# lightblue #ADD8E6
# lightcoral #F08080
# lightcyan #E0FFFF
# lightgoldenrodyellow #FAFAD2
# lightgray #D3D3D3
# lightgreen #90EE90
# lightgrey #D3D3D3
# lightpink #FFB6C1
# lightsalmon #FFA07A
# lightseagreen #20B2AA
# lightskyblue #87CEFA
# lightslategray #778899
# lightslategrey #778899
# lightsteelblue #B0C4DE
# lightyellow #FFFFE0
# lime #00FF00
# limegreen #32CD32
# linen #FAF0E6
# magenta #FF00FF
# maroon #800000
# mediumaquamarine #66CDAA
# mediumblue #0000CD
# mediumorchid #BA55D3
# mediumpurple #9370DB
# mediumseagreen #3CB371
# mediumslateblue #7B68EE
# mediumspringgreen #00FA9A
# mediumturquoise #48D1CC
# mediumvioletred #C71585
# midnightblue #191970
# mintcream #F5FFFA
# mistyrose #FFE4E1
# moccasin #FFE4B5
# navajowhite #FFDEAD
# navy #000080
# oldlace #FDF5E6
# olive #808000
# olivedrab #6B8E23
# orange #FFA500
# orangered #FF4500
# orchid #DA70D6
# palegoldenrod #EEE8AA
# palegreen #98FB98
# paleturquoise #AFEEEE
# palevioletred #DB7093
# papayawhip #FFEFD5
# peachpuff #FFDAB9
# peru #CD853F
# pink #FFC0CB
# plum #DDA0DD
# powderblue #B0E0E6
# purple #800080
# rebeccapurple #663399
# red #FF0000
# rosybrown #BC8F8F
# royalblue #4169E1
# saddlebrown #8B4513
# salmon #FA8072
# sandybrown #F4A460
# seagreen #2E8B57
# seashell #FFF5EE
# sienna #A0522D
# silver #C0C0C0
# skyblue #87CEEB
# slateblue #6A5ACD
# slategray #708090
# slategrey #708090
# snow #FFFAFA
# springgreen #00FF7F
# steelblue #4682B4
# tan #D2B48C
# teal #008080
# thistle #D8BFD8
# tomato #FF6347
# turquoise #40E0D0
# violet #EE82EE
# wheat #F5DEB3
# white #FFFFFF
# whitesmoke #F5F5F5
# yellow #FFFF00
# yellowgreen #9ACD32